1. Field
The present disclosure relates to virtually-partitioned computing systems. More particularly, the disclosure concerns partition placement in systems exhibiting Non-Uniform Memory Access (NUMA) characteristics.
2. Description of the Prior Art
By way of background, many current computer systems utilize NUMA-like hardware designs. In these designs, microprocessor chips have access to memory that is relatively “close” to them (low latency and high bandwidth) and also memory that is relatively “far” away (higher latency, sometimes lower bandwidth). System topologies may involve many levels of memory attachment, and as interconnections between the processors themselves.
When a virtual partition is created to provision a virtual machine (VM), it is generally necessary to allocate a set of resources for the partition. In the case of some resources, such as processors, the resource mappings can be soft. For example, a “home processor” for a virtual processor of a shared processor partition is a physical processor where the virtual processor prefers to run, but it may run on other physical processors as well. Other resources, such as memory, tend to be more persistent. Because there is a relationship between the resource mappings and dynamic execution performance, resource placement can be very important.
The NUMA properties of many computer systems can create rather large performance differences between partitions with “good” placement versus “bad” placement. As an example consider the two partition placements shown in FIG. 1. In this case, a first partition that comprises CPU core 0 on processor chip A has been allocated memory from physical memory X that is locally attached to processor chip A. A second partition that comprises CPU core 1 on processor chip A has been allocated memory from physical memory Y. This memory is locally attached to processor chip B but is remote with respect to processor chip A. For many workloads, the need for remote memory accesses in the second partition will produce a performance penalty. Remote accesses to high speed I/O can also introduce problems, particularly when large amounts of data are involved.
By way of further background, it is becoming increasingly popular to use resource management tools to automatically create partitions and start them on systems. In cloud computing environments, these management tools typically manage multiple systems at the same time. This allows the management tool to select, from a set of systems, the specific system where the partition will be started. Typically, these management tools have a view of the resource usage of the systems at a very high level. For example, they may understand if the system has available processor and memory capacity. However, as far as known, the actual resource usage is not exposed in a granular enough way to determine if a partition will fit well upon a system or not. Thus, existing management tools are not able to judge whether a particular partition placement will be “good” or “bad” from the standpoint of resource access performance.
It is to improvements in the field of virtually partitioned computing systems that the present disclosure is directed. In particular, applicants disclose a technique that allows a resource management tool to evaluate the ability of a system with NUMA-like hardware designs to support particular partition requirements.